main programmer